import axios from 'axios'
import { message } from 'ant-design-vue'
// 创建 axios 实例
const request = axios.create({
  // API 请求的默认前缀
  baseURL: '/api'
  // timeout: 8000, // 请求超时时间
})

// 异常拦截处理器
const errorHandler = (error: { response: { status: number } }) => {
  if (error.response) {
    if (error.response.status === 503) {
      message.error('后端服务不可用')
    } else if (error.response.status === 404) {
      message.error('接口地址不存在')
    } else if (error.response.status === 401) {
    } else if (error.response.status === 500) {
      message.error('后端服务器错误')
    }
  } else {
    message.error('网络错误')
  }
  return Promise.reject(error)
}

// request interceptor
request.interceptors.request.use((config: any) => {
  const token = '03bc78b1afb77523654595b94597e735483568552930971648'
  if (token) {
    config.headers.Authorization = token
  }
  return config
}, errorHandler)
// response interceptor
request.interceptors.response.use((response) => {
  if (response.config.responseType === 'blob') {
    return response
  } else {
    if (response.data.success) {
      return response.data.result
    } else {
      message.error(response.data.message)
      return Promise.reject(response.data.message)
    }
  }
}, errorHandler)

export default request
